TSTP Solution File: ALG256^1 by Zipperpin---2.1.9999

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Zipperpin---2.1.9999
% Problem  : ALG256^1 : TPTP v8.1.2. Bugfixed v5.2.0.
% Transfm  : NO INFORMATION
% Format   : NO INFORMATION
% Command  : python3 /export/starexec/sandbox/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox/tmp/tmp.vnd7t160Ly true

% Computer : n012.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Wed Aug 30 17:12:30 EDT 2023

% Result   : Theorem 3.50s 1.20s
% Output   : Refutation 3.50s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   40
%            Number of leaves      :  110
% Syntax   : Number of formulae    :  165 (  75 unt;  46 typ;   0 def)
%            Number of atoms       : 2627 ( 643 equ;  43 cnn)
%            Maximal formula atoms :  125 (  22 avg)
%            Number of connectives : 9006 ( 114   ~;   3   |;  94   &;5728   @)
%                                         (   0 <=>;1532  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   43 (   9 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :  147 ( 147   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   48 (  44 usr;  40 con; 0-4 aty)
%                                         (1535  !!;   0  ??;   0 @@+;   0 @@-)
%            Number of variables   : 1902 (1547   ^; 355   !;   0   ?;1902   :)

% Comments : 
%------------------------------------------------------------------------------
thf(term_type,type,
    term: $tType ).

thf(subst_type,type,
    subst: $tType ).

thf(axmap_type,type,
    axmap: $o ).

thf(axclos_type,type,
    axclos: $o ).

thf(lam_type,type,
    lam: term > term ).

thf(lamnotap_type,type,
    lamnotap: $o ).

thf('#sk214_type',type,
    '#sk214': term ).

thf(axvarcons_type,type,
    axvarcons: $o ).

thf(substmonoid_type,type,
    substmonoid: $o ).

thf(push_type,type,
    push: term > subst > subst ).

thf(axshiftcons_type,type,
    axshiftcons: $o ).

thf(hoasapinj1_type,type,
    hoasapinj1: $o ).

thf(axapp_type,type,
    axapp: $o ).

thf(shinj_type,type,
    shinj: $o ).

thf(hoasap_type,type,
    hoasap: subst > term > subst > term > term ).

thf(one_type,type,
    one: term ).

thf(id_type,type,
    id: subst ).

thf(comp_type,type,
    comp: subst > subst > subst ).

thf(induction2_type,type,
    induction2: $o ).

thf(axvarid_type,type,
    axvarid: $o ).

thf(axvarshift_type,type,
    axvarshift: $o ).

thf(induction2lem_type,type,
    induction2lem: $o ).

thf(sh_type,type,
    sh: subst ).

thf(laminj_type,type,
    laminj: $o ).

thf(ulamvarind_type,type,
    ulamvarind: $o ).

thf('#sk319_type',type,
    '#sk319': term ).

thf(apinj2_type,type,
    apinj2: $o ).

thf(ulamvarsh_type,type,
    ulamvarsh: $o ).

thf(hoasapinj1_gthm_type,type,
    hoasapinj1_gthm: $o ).

thf(lamnotvar_type,type,
    lamnotvar: $o ).

thf(apnotvar_type,type,
    apnotvar: $o ).

thf(pushprop_type,type,
    pushprop: $o ).

thf(sub_type,type,
    sub: term > subst > term ).

thf(apinj1_type,type,
    apinj1: $o ).

thf(axidl_type,type,
    axidl: $o ).

thf(ap_type,type,
    ap: term > term > term ).

thf(termmset_type,type,
    termmset: $o ).

thf(var_type,type,
    var: term > $o ).

thf(axassoc_type,type,
    axassoc: $o ).

thf(axidr_type,type,
    axidr: $o ).

thf(axabs_type,type,
    axabs: $o ).

thf('#sk265_type',type,
    '#sk265': term ).

thf(ulamvar1_type,type,
    ulamvar1: $o ).

thf(induction_type,type,
    induction: $o ).

thf(axscons_type,type,
    axscons: $o ).

thf('#sk164_type',type,
    '#sk164': term ).

thf(hoasapinj1_gthm,axiom,
    ( hoasapinj1_gthm
    = ( axapp
     => ( axvarcons
       => ( axvarid
         => ( axabs
           => ( axclos
             => ( axidl
               => ( axshiftcons
                 => ( axassoc
                   => ( axmap
                     => ( axidr
                       => ( axvarshift
                         => ( axscons
                           => ( ulamvar1
                             => ( ulamvarsh
                               => ( ulamvarind
                                 => ( apinj1
                                   => ( apinj2
                                     => ( laminj
                                       => ( shinj
                                         => ( lamnotap
                                           => ( apnotvar
                                             => ( lamnotvar
                                               => ( induction
                                                 => ( pushprop
                                                   => ( induction2lem
                                                     => ( induction2
                                                       => ( substmonoid
                                                         => ( termmset
                                                           => hoasapinj1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).

thf('0',plain,
    ( hoasapinj1_gthm
    = ( axapp
     => ( axvarcons
       => ( axvarid
         => ( axabs
           => ( axclos
             => ( axidl
               => ( axshiftcons
                 => ( axassoc
                   => ( axmap
                     => ( axidr
                       => ( axvarshift
                         => ( axscons
                           => ( ulamvar1
                             => ( ulamvarsh
                               => ( ulamvarind
                                 => ( apinj1
                                   => ( apinj2
                                     => ( laminj
                                       => ( shinj
                                         => ( lamnotap
                                           => ( apnotvar
                                             => ( lamnotvar
                                               => ( induction
                                                 => ( pushprop
                                                   => ( induction2lem
                                                     => ( induction2
                                                       => ( substmonoid
                                                         => ( termmset
                                                           => hoasapinj1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(hoasapinj1,axiom,
    ( hoasapinj1
    = ( ! [A: term,B: term,C: term,D: term] :
          ( ( ( hoasap @ id @ A @ id @ C )
            = ( hoasap @ id @ B @ id @ D ) )
         => ( A = B ) ) ) ) ).

thf('1',plain,
    ( hoasapinj1
    = ( ! [X4: term,X6: term,X8: term,X10: term] :
          ( ( ( hoasap @ id @ X4 @ id @ X8 )
            = ( hoasap @ id @ X6 @ id @ X10 ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(hoasap,axiom,
    ( hoasap
    = ( ^ [M: subst,A: term,N: subst,B: term] : ( ap @ ( sub @ A @ N ) @ B ) ) ) ).

thf('2',plain,
    ( hoasap
    = ( ^ [M: subst,A: term,N: subst,B: term] : ( ap @ ( sub @ A @ N ) @ B ) ) ),
    inference(simplify_rw_rule,[status(thm)],[hoasap]) ).

thf('3',plain,
    ( hoasap
    = ( ^ [V_1: subst,V_2: term,V_3: subst,V_4: term] : ( ap @ ( sub @ V_2 @ V_3 ) @ V_4 ) ) ),
    define([status(thm)]) ).

thf(termmset,axiom,
    ( termmset
    = ( ! [A: term] :
          ( ( sub @ A @ id )
          = A )
      & ! [A: term,M: subst,N: subst] :
          ( ( sub @ ( sub @ A @ M ) @ N )
          = ( sub @ A @ ( comp @ M @ N ) ) ) ) ) ).

thf('4',plain,
    ( termmset
    = ( ! [X4: term] :
          ( ( sub @ X4 @ id )
          = X4 )
      & ! [X6: term,X8: subst,X10: subst] :
          ( ( sub @ ( sub @ X6 @ X8 ) @ X10 )
          = ( sub @ X6 @ ( comp @ X8 @ X10 ) ) ) ) ),
    define([status(thm)]) ).

thf(substmonoid,axiom,
    ( substmonoid
    = ( ! [M: subst] :
          ( ( comp @ M @ id )
          = M )
      & ! [M: subst] :
          ( ( comp @ id @ M )
          = M )
      & ! [M: subst,N: subst,K: subst] :
          ( ( comp @ ( comp @ M @ N ) @ K )
          = ( comp @ M @ ( comp @ N @ K ) ) ) ) ) ).

thf('5',plain,
    ( substmonoid
    = ( ! [X4: subst] :
          ( ( comp @ X4 @ id )
          = X4 )
      & ! [X6: subst] :
          ( ( comp @ id @ X6 )
          = X6 )
      & ! [X8: subst,X10: subst,X12: subst] :
          ( ( comp @ ( comp @ X8 @ X10 ) @ X12 )
          = ( comp @ X8 @ ( comp @ X10 @ X12 ) ) ) ) ),
    define([status(thm)]) ).

thf(induction2,axiom,
    ( induction2
    = ( ! [P: term > $o] :
          ( ! [A: term] :
              ( ( var @ A )
             => ( P @ A ) )
         => ( ! [A: term,B: term] :
                ( ( P @ A )
               => ( ( P @ B )
                 => ( P @ ( ap @ A @ B ) ) ) )
           => ( ! [A: term] :
                  ( ! [B: term] :
                      ( ( P @ B )
                     => ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
                 => ( P @ ( lam @ A ) ) )
             => ! [A: term] : ( P @ A ) ) ) ) ) ) ).

thf('6',plain,
    ( induction2
    = ( ! [X4: term > $o] :
          ( ! [X6: term] :
              ( ( var @ X6 )
             => ( X4 @ X6 ) )
         => ( ! [X8: term,X10: term] :
                ( ( X4 @ X8 )
               => ( ( X4 @ X10 )
                 => ( X4 @ ( ap @ X8 @ X10 ) ) ) )
           => ( ! [X12: term] :
                  ( ! [X14: term] :
                      ( ( X4 @ X14 )
                     => ( X4 @ ( sub @ X12 @ ( push @ X14 @ id ) ) ) )
                 => ( X4 @ ( lam @ X12 ) ) )
             => ! [X16: term] : ( X4 @ X16 ) ) ) ) ) ),
    define([status(thm)]) ).

thf(induction2lem,axiom,
    ( induction2lem
    = ( ! [P: term > $o] :
          ( ! [A: term,B: term] :
              ( ( P @ A )
             => ( ( P @ B )
               => ( P @ ( ap @ A @ B ) ) ) )
         => ( ! [A: term] :
                ( ! [B: term] :
                    ( ( P @ B )
                   => ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
               => ( P @ ( lam @ A ) ) )
           => ! [A: term,M: subst] :
                ( ! [B: term] :
                    ( ( var @ B )
                   => ( P @ ( sub @ B @ M ) ) )
               => ( P @ ( sub @ A @ M ) ) ) ) ) ) ) ).

thf('7',plain,
    ( induction2lem
    = ( ! [X4: term > $o] :
          ( ! [X6: term,X8: term] :
              ( ( X4 @ X6 )
             => ( ( X4 @ X8 )
               => ( X4 @ ( ap @ X6 @ X8 ) ) ) )
         => ( ! [X10: term] :
                ( ! [X12: term] :
                    ( ( X4 @ X12 )
                   => ( X4 @ ( sub @ X10 @ ( push @ X12 @ id ) ) ) )
               => ( X4 @ ( lam @ X10 ) ) )
           => ! [X14: term,X16: subst] :
                ( ! [X18: term] :
                    ( ( var @ X18 )
                   => ( X4 @ ( sub @ X18 @ X16 ) ) )
               => ( X4 @ ( sub @ X14 @ X16 ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(pushprop,axiom,
    ( pushprop
    = ( ! [P: term > $o,A: term,M: subst] :
          ( ! [B: term] :
              ( ( var @ B )
             => ( P @ ( sub @ B @ M ) ) )
         => ( ( P @ A )
           => ! [B: term] :
                ( ( var @ B )
               => ( P @ ( sub @ B @ ( push @ A @ M ) ) ) ) ) ) ) ) ).

thf('8',plain,
    ( pushprop
    = ( ! [X4: term > $o,X6: term,X8: subst] :
          ( ! [X10: term] :
              ( ( var @ X10 )
             => ( X4 @ ( sub @ X10 @ X8 ) ) )
         => ( ( X4 @ X6 )
           => ! [X12: term] :
                ( ( var @ X12 )
               => ( X4 @ ( sub @ X12 @ ( push @ X6 @ X8 ) ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(induction,axiom,
    ( induction
    = ( ! [P: term > $o] :
          ( ! [A: term] :
              ( ( var @ A )
             => ( P @ A ) )
         => ( ! [A: term,B: term] :
                ( ( P @ A )
               => ( ( P @ B )
                 => ( P @ ( ap @ A @ B ) ) ) )
           => ( ! [A: term] :
                  ( ( P @ A )
                 => ( P @ ( lam @ A ) ) )
             => ! [A: term] : ( P @ A ) ) ) ) ) ) ).

thf('9',plain,
    ( induction
    = ( ! [X4: term > $o] :
          ( ! [X6: term] :
              ( ( var @ X6 )
             => ( X4 @ X6 ) )
         => ( ! [X8: term,X10: term] :
                ( ( X4 @ X8 )
               => ( ( X4 @ X10 )
                 => ( X4 @ ( ap @ X8 @ X10 ) ) ) )
           => ( ! [X12: term] :
                  ( ( X4 @ X12 )
                 => ( X4 @ ( lam @ X12 ) ) )
             => ! [X14: term] : ( X4 @ X14 ) ) ) ) ) ),
    define([status(thm)]) ).

thf(lamnotvar,axiom,
    ( lamnotvar
    = ( ! [A: term] :
          ~ ( var @ ( lam @ A ) ) ) ) ).

thf('10',plain,
    ( lamnotvar
    = ( ! [X4: term] :
          ~ ( var @ ( lam @ X4 ) ) ) ),
    define([status(thm)]) ).

thf(apnotvar,axiom,
    ( apnotvar
    = ( ! [A: term,B: term] :
          ~ ( var @ ( ap @ A @ B ) ) ) ) ).

thf('11',plain,
    ( apnotvar
    = ( ! [X4: term,X6: term] :
          ~ ( var @ ( ap @ X4 @ X6 ) ) ) ),
    define([status(thm)]) ).

thf(lamnotap,axiom,
    ( lamnotap
    = ( ! [A: term,B: term,C: term] :
          ( ( lam @ A )
         != ( ap @ B @ C ) ) ) ) ).

thf('12',plain,
    ( lamnotap
    = ( ! [X4: term,X6: term,X8: term] :
          ( ( lam @ X4 )
         != ( ap @ X6 @ X8 ) ) ) ),
    define([status(thm)]) ).

thf(shinj,axiom,
    ( shinj
    = ( ! [A: term,B: term] :
          ( ( ( sub @ A @ sh )
            = ( sub @ B @ sh ) )
         => ( A = B ) ) ) ) ).

thf('13',plain,
    ( shinj
    = ( ! [X4: term,X6: term] :
          ( ( ( sub @ X4 @ sh )
            = ( sub @ X6 @ sh ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(laminj,axiom,
    ( laminj
    = ( ! [A: term,B: term] :
          ( ( ( lam @ A )
            = ( lam @ B ) )
         => ( A = B ) ) ) ) ).

thf('14',plain,
    ( laminj
    = ( ! [X4: term,X6: term] :
          ( ( ( lam @ X4 )
            = ( lam @ X6 ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(apinj2,axiom,
    ( apinj2
    = ( ! [A: term,B: term,C: term,D: term] :
          ( ( ( ap @ A @ C )
            = ( ap @ B @ D ) )
         => ( C = D ) ) ) ) ).

thf('15',plain,
    ( apinj2
    = ( ! [X4: term,X6: term,X8: term,X10: term] :
          ( ( ( ap @ X4 @ X8 )
            = ( ap @ X6 @ X10 ) )
         => ( X8 = X10 ) ) ) ),
    define([status(thm)]) ).

thf(apinj1,axiom,
    ( apinj1
    = ( ! [A: term,B: term,C: term,D: term] :
          ( ( ( ap @ A @ C )
            = ( ap @ B @ D ) )
         => ( A = B ) ) ) ) ).

thf('16',plain,
    ( apinj1
    = ( ! [X4: term,X6: term,X8: term,X10: term] :
          ( ( ( ap @ X4 @ X8 )
            = ( ap @ X6 @ X10 ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(ulamvarind,axiom,
    ( ulamvarind
    = ( ! [P: term > $o] :
          ( ( P @ one )
         => ( ! [A: term] :
                ( ( var @ A )
               => ( ( P @ A )
                 => ( P @ ( sub @ A @ sh ) ) ) )
           => ! [A: term] :
                ( ( var @ A )
               => ( P @ A ) ) ) ) ) ) ).

thf('17',plain,
    ( ulamvarind
    = ( ! [X4: term > $o] :
          ( ( X4 @ one )
         => ( ! [X6: term] :
                ( ( var @ X6 )
               => ( ( X4 @ X6 )
                 => ( X4 @ ( sub @ X6 @ sh ) ) ) )
           => ! [X8: term] :
                ( ( var @ X8 )
               => ( X4 @ X8 ) ) ) ) ) ),
    define([status(thm)]) ).

thf(ulamvarsh,axiom,
    ( ulamvarsh
    = ( ! [A: term] :
          ( ( var @ A )
         => ( var @ ( sub @ A @ sh ) ) ) ) ) ).

thf('18',plain,
    ( ulamvarsh
    = ( ! [X4: term] :
          ( ( var @ X4 )
         => ( var @ ( sub @ X4 @ sh ) ) ) ) ),
    define([status(thm)]) ).

thf(ulamvar1,axiom,
    ( ulamvar1
    = ( var @ one ) ) ).

thf('19',plain,
    ( ulamvar1
    = ( var @ one ) ),
    inference(simplify_rw_rule,[status(thm)],[ulamvar1]) ).

thf('20',plain,
    ( ulamvar1
    = ( var @ one ) ),
    define([status(thm)]) ).

thf(axscons,axiom,
    ( axscons
    = ( ! [M: subst] :
          ( ( push @ ( sub @ one @ M ) @ ( comp @ sh @ M ) )
          = M ) ) ) ).

thf('21',plain,
    ( axscons
    = ( ! [X4: subst] :
          ( ( push @ ( sub @ one @ X4 ) @ ( comp @ sh @ X4 ) )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axvarshift,axiom,
    ( axvarshift
    = ( ( push @ one @ sh )
      = id ) ) ).

thf('22',plain,
    ( axvarshift
    = ( ( push @ one @ sh )
      = id ) ),
    define([status(thm)]) ).

thf(axidr,axiom,
    ( axidr
    = ( ! [M: subst] :
          ( ( comp @ M @ id )
          = M ) ) ) ).

thf('23',plain,
    ( axidr
    = ( ! [X4: subst] :
          ( ( comp @ X4 @ id )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axmap,axiom,
    ( axmap
    = ( ! [A: term,M: subst,N: subst] :
          ( ( comp @ ( push @ A @ M ) @ N )
          = ( push @ ( sub @ A @ N ) @ ( comp @ M @ N ) ) ) ) ) ).

thf('24',plain,
    ( axmap
    = ( ! [X4: term,X6: subst,X8: subst] :
          ( ( comp @ ( push @ X4 @ X6 ) @ X8 )
          = ( push @ ( sub @ X4 @ X8 ) @ ( comp @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(axassoc,axiom,
    ( axassoc
    = ( ! [M: subst,N: subst,K: subst] :
          ( ( comp @ ( comp @ M @ N ) @ K )
          = ( comp @ M @ ( comp @ N @ K ) ) ) ) ) ).

thf('25',plain,
    ( axassoc
    = ( ! [X4: subst,X6: subst,X8: subst] :
          ( ( comp @ ( comp @ X4 @ X6 ) @ X8 )
          = ( comp @ X4 @ ( comp @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(axshiftcons,axiom,
    ( axshiftcons
    = ( ! [A: term,M: subst] :
          ( ( comp @ sh @ ( push @ A @ M ) )
          = M ) ) ) ).

thf('26',plain,
    ( axshiftcons
    = ( ! [X4: term,X6: subst] :
          ( ( comp @ sh @ ( push @ X4 @ X6 ) )
          = X6 ) ) ),
    define([status(thm)]) ).

thf(axidl,axiom,
    ( axidl
    = ( ! [M: subst] :
          ( ( comp @ id @ M )
          = M ) ) ) ).

thf('27',plain,
    ( axidl
    = ( ! [X4: subst] :
          ( ( comp @ id @ X4 )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axclos,axiom,
    ( axclos
    = ( ! [A: term,M: subst,N: subst] :
          ( ( sub @ ( sub @ A @ M ) @ N )
          = ( sub @ A @ ( comp @ M @ N ) ) ) ) ) ).

thf('28',plain,
    ( axclos
    = ( ! [X4: term,X6: subst,X8: subst] :
          ( ( sub @ ( sub @ X4 @ X6 ) @ X8 )
          = ( sub @ X4 @ ( comp @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(axabs,axiom,
    ( axabs
    = ( ! [A: term,M: subst] :
          ( ( sub @ ( lam @ A ) @ M )
          = ( lam @ ( sub @ A @ ( push @ one @ ( comp @ M @ sh ) ) ) ) ) ) ) ).

thf('29',plain,
    ( axabs
    = ( ! [X4: term,X6: subst] :
          ( ( sub @ ( lam @ X4 ) @ X6 )
          = ( lam @ ( sub @ X4 @ ( push @ one @ ( comp @ X6 @ sh ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(axvarid,axiom,
    ( axvarid
    = ( ! [A: term] :
          ( ( sub @ A @ id )
          = A ) ) ) ).

thf('30',plain,
    ( axvarid
    = ( ! [X4: term] :
          ( ( sub @ X4 @ id )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axvarcons,axiom,
    ( axvarcons
    = ( ! [A: term,M: subst] :
          ( ( sub @ one @ ( push @ A @ M ) )
          = A ) ) ) ).

thf('31',plain,
    ( axvarcons
    = ( ! [X4: term,X6: subst] :
          ( ( sub @ one @ ( push @ X4 @ X6 ) )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axapp,axiom,
    ( axapp
    = ( ! [A: term,B: term,M: subst] :
          ( ( sub @ ( ap @ A @ B ) @ M )
          = ( ap @ ( sub @ A @ M ) @ ( sub @ B @ M ) ) ) ) ) ).

thf('32',plain,
    ( axapp
    = ( ! [X4: term,X6: term,X8: subst] :
          ( ( sub @ ( ap @ X4 @ X6 ) @ X8 )
          = ( ap @ ( sub @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(thm,conjecture,
    hoasapinj1_gthm ).

thf(zf_stmt_0,conjecture,
    ( ! [X4: term,X6: term,X8: subst] :
        ( ( sub @ ( ap @ X4 @ X6 ) @ X8 )
        = ( ap @ ( sub @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) )
   => ( ! [X10: term,X12: subst] :
          ( ( sub @ one @ ( push @ X10 @ X12 ) )
          = X10 )
     => ( ! [X14: term] :
            ( ( sub @ X14 @ id )
            = X14 )
       => ( ! [X16: term,X18: subst] :
              ( ( sub @ ( lam @ X16 ) @ X18 )
              = ( lam @ ( sub @ X16 @ ( push @ one @ ( comp @ X18 @ sh ) ) ) ) )
         => ( ! [X20: term,X22: subst,X24: subst] :
                ( ( sub @ ( sub @ X20 @ X22 ) @ X24 )
                = ( sub @ X20 @ ( comp @ X22 @ X24 ) ) )
           => ( ! [X26: subst] :
                  ( ( comp @ id @ X26 )
                  = X26 )
             => ( ! [X28: term,X30: subst] :
                    ( ( comp @ sh @ ( push @ X28 @ X30 ) )
                    = X30 )
               => ( ! [X32: subst,X34: subst,X36: subst] :
                      ( ( comp @ ( comp @ X32 @ X34 ) @ X36 )
                      = ( comp @ X32 @ ( comp @ X34 @ X36 ) ) )
                 => ( ! [X38: term,X40: subst,X42: subst] :
                        ( ( comp @ ( push @ X38 @ X40 ) @ X42 )
                        = ( push @ ( sub @ X38 @ X42 ) @ ( comp @ X40 @ X42 ) ) )
                   => ( ! [X44: subst] :
                          ( ( comp @ X44 @ id )
                          = X44 )
                     => ( ( ( push @ one @ sh )
                          = id )
                       => ( ! [X46: subst] :
                              ( ( push @ ( sub @ one @ X46 ) @ ( comp @ sh @ X46 ) )
                              = X46 )
                         => ( ( var @ one )
                           => ( ! [X48: term] :
                                  ( ( var @ X48 )
                                 => ( var @ ( sub @ X48 @ sh ) ) )
                             => ( ! [X50: term > $o] :
                                    ( ( X50 @ one )
                                   => ( ! [X52: term] :
                                          ( ( var @ X52 )
                                         => ( ( X50 @ X52 )
                                           => ( X50 @ ( sub @ X52 @ sh ) ) ) )
                                     => ! [X54: term] :
                                          ( ( var @ X54 )
                                         => ( X50 @ X54 ) ) ) )
                               => ( ! [X56: term,X58: term,X60: term,X62: term] :
                                      ( ( ( ap @ X56 @ X60 )
                                        = ( ap @ X58 @ X62 ) )
                                     => ( X56 = X58 ) )
                                 => ( ! [X64: term,X66: term,X68: term,X70: term] :
                                        ( ( ( ap @ X64 @ X68 )
                                          = ( ap @ X66 @ X70 ) )
                                       => ( X68 = X70 ) )
                                   => ( ! [X72: term,X74: term] :
                                          ( ( ( lam @ X72 )
                                            = ( lam @ X74 ) )
                                         => ( X72 = X74 ) )
                                     => ( ! [X76: term,X78: term] :
                                            ( ( ( sub @ X76 @ sh )
                                              = ( sub @ X78 @ sh ) )
                                           => ( X76 = X78 ) )
                                       => ( ! [X80: term,X82: term,X84: term] :
                                              ( ( lam @ X80 )
                                             != ( ap @ X82 @ X84 ) )
                                         => ( ! [X86: term,X88: term] :
                                                ~ ( var @ ( ap @ X86 @ X88 ) )
                                           => ( ! [X90: term] :
                                                  ~ ( var @ ( lam @ X90 ) )
                                             => ( ! [X92: term > $o] :
                                                    ( ! [X94: term] :
                                                        ( ( var @ X94 )
                                                       => ( X92 @ X94 ) )
                                                   => ( ! [X96: term,X98: term] :
                                                          ( ( X92 @ X96 )
                                                         => ( ( X92 @ X98 )
                                                           => ( X92 @ ( ap @ X96 @ X98 ) ) ) )
                                                     => ( ! [X100: term] :
                                                            ( ( X92 @ X100 )
                                                           => ( X92 @ ( lam @ X100 ) ) )
                                                       => ! [X102: term] : ( X92 @ X102 ) ) ) )
                                               => ( ! [X104: term > $o,X106: term,X108: subst] :
                                                      ( ! [X110: term] :
                                                          ( ( var @ X110 )
                                                         => ( X104 @ ( sub @ X110 @ X108 ) ) )
                                                     => ( ( X104 @ X106 )
                                                       => ! [X112: term] :
                                                            ( ( var @ X112 )
                                                           => ( X104 @ ( sub @ X112 @ ( push @ X106 @ X108 ) ) ) ) ) )
                                                 => ( ! [X114: term > $o] :
                                                        ( ! [X116: term,X118: term] :
                                                            ( ( X114 @ X116 )
                                                           => ( ( X114 @ X118 )
                                                             => ( X114 @ ( ap @ X116 @ X118 ) ) ) )
                                                       => ( ! [X120: term] :
                                                              ( ! [X122: term] :
                                                                  ( ( X114 @ X122 )
                                                                 => ( X114 @ ( sub @ X120 @ ( push @ X122 @ id ) ) ) )
                                                             => ( X114 @ ( lam @ X120 ) ) )
                                                         => ! [X124: term,X126: subst] :
                                                              ( ! [X128: term] :
                                                                  ( ( var @ X128 )
                                                                 => ( X114 @ ( sub @ X128 @ X126 ) ) )
                                                             => ( X114 @ ( sub @ X124 @ X126 ) ) ) ) )
                                                   => ( ! [X130: term > $o] :
                                                          ( ! [X132: term] :
                                                              ( ( var @ X132 )
                                                             => ( X130 @ X132 ) )
                                                         => ( ! [X134: term,X136: term] :
                                                                ( ( X130 @ X134 )
                                                               => ( ( X130 @ X136 )
                                                                 => ( X130 @ ( ap @ X134 @ X136 ) ) ) )
                                                           => ( ! [X138: term] :
                                                                  ( ! [X140: term] :
                                                                      ( ( X130 @ X140 )
                                                                     => ( X130 @ ( sub @ X138 @ ( push @ X140 @ id ) ) ) )
                                                                 => ( X130 @ ( lam @ X138 ) ) )
                                                             => ! [X142: term] : ( X130 @ X142 ) ) ) )
                                                     => ( ( ! [X148: subst,X150: subst,X152: subst] :
                                                              ( ( comp @ ( comp @ X148 @ X150 ) @ X152 )
                                                              = ( comp @ X148 @ ( comp @ X150 @ X152 ) ) )
                                                          & ! [X146: subst] :
                                                              ( ( comp @ id @ X146 )
                                                              = X146 )
                                                          & ! [X144: subst] :
                                                              ( ( comp @ X144 @ id )
                                                              = X144 ) )
                                                       => ( ( ! [X156: term,X158: subst,X160: subst] :
                                                                ( ( sub @ ( sub @ X156 @ X158 ) @ X160 )
                                                                = ( sub @ X156 @ ( comp @ X158 @ X160 ) ) )
                                                            & ! [X154: term] :
                                                                ( ( sub @ X154 @ id )
                                                                = X154 ) )
                                                         => ! [X162: term,X164: term,X166: term,X168: term] :
                                                              ( ( ( ap @ ( sub @ X162 @ id ) @ X166 )
                                                                = ( ap @ ( sub @ X164 @ id ) @ X168 ) )
                                                             => ( X162 = X164 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).

thf(zf_stmt_1,negated_conjecture,
    ~ ( ! [X4: term,X6: term,X8: subst] :
          ( ( sub @ ( ap @ X4 @ X6 ) @ X8 )
          = ( ap @ ( sub @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) )
     => ( ! [X10: term,X12: subst] :
            ( ( sub @ one @ ( push @ X10 @ X12 ) )
            = X10 )
       => ( ! [X14: term] :
              ( ( sub @ X14 @ id )
              = X14 )
         => ( ! [X16: term,X18: subst] :
                ( ( sub @ ( lam @ X16 ) @ X18 )
                = ( lam @ ( sub @ X16 @ ( push @ one @ ( comp @ X18 @ sh ) ) ) ) )
           => ( ! [X20: term,X22: subst,X24: subst] :
                  ( ( sub @ ( sub @ X20 @ X22 ) @ X24 )
                  = ( sub @ X20 @ ( comp @ X22 @ X24 ) ) )
             => ( ! [X26: subst] :
                    ( ( comp @ id @ X26 )
                    = X26 )
               => ( ! [X28: term,X30: subst] :
                      ( ( comp @ sh @ ( push @ X28 @ X30 ) )
                      = X30 )
                 => ( ! [X32: subst,X34: subst,X36: subst] :
                        ( ( comp @ ( comp @ X32 @ X34 ) @ X36 )
                        = ( comp @ X32 @ ( comp @ X34 @ X36 ) ) )
                   => ( ! [X38: term,X40: subst,X42: subst] :
                          ( ( comp @ ( push @ X38 @ X40 ) @ X42 )
                          = ( push @ ( sub @ X38 @ X42 ) @ ( comp @ X40 @ X42 ) ) )
                     => ( ! [X44: subst] :
                            ( ( comp @ X44 @ id )
                            = X44 )
                       => ( ( ( push @ one @ sh )
                            = id )
                         => ( ! [X46: subst] :
                                ( ( push @ ( sub @ one @ X46 ) @ ( comp @ sh @ X46 ) )
                                = X46 )
                           => ( ( var @ one )
                             => ( ! [X48: term] :
                                    ( ( var @ X48 )
                                   => ( var @ ( sub @ X48 @ sh ) ) )
                               => ( ! [X50: term > $o] :
                                      ( ( X50 @ one )
                                     => ( ! [X52: term] :
                                            ( ( var @ X52 )
                                           => ( ( X50 @ X52 )
                                             => ( X50 @ ( sub @ X52 @ sh ) ) ) )
                                       => ! [X54: term] :
                                            ( ( var @ X54 )
                                           => ( X50 @ X54 ) ) ) )
                                 => ( ! [X56: term,X58: term,X60: term,X62: term] :
                                        ( ( ( ap @ X56 @ X60 )
                                          = ( ap @ X58 @ X62 ) )
                                       => ( X56 = X58 ) )
                                   => ( ! [X64: term,X66: term,X68: term,X70: term] :
                                          ( ( ( ap @ X64 @ X68 )
                                            = ( ap @ X66 @ X70 ) )
                                         => ( X68 = X70 ) )
                                     => ( ! [X72: term,X74: term] :
                                            ( ( ( lam @ X72 )
                                              = ( lam @ X74 ) )
                                           => ( X72 = X74 ) )
                                       => ( ! [X76: term,X78: term] :
                                              ( ( ( sub @ X76 @ sh )
                                                = ( sub @ X78 @ sh ) )
                                             => ( X76 = X78 ) )
                                         => ( ! [X80: term,X82: term,X84: term] :
                                                ( ( lam @ X80 )
                                               != ( ap @ X82 @ X84 ) )
                                           => ( ! [X86: term,X88: term] :
                                                  ~ ( var @ ( ap @ X86 @ X88 ) )
                                             => ( ! [X90: term] :
                                                    ~ ( var @ ( lam @ X90 ) )
                                               => ( ! [X92: term > $o] :
                                                      ( ! [X94: term] :
                                                          ( ( var @ X94 )
                                                         => ( X92 @ X94 ) )
                                                     => ( ! [X96: term,X98: term] :
                                                            ( ( X92 @ X96 )
                                                           => ( ( X92 @ X98 )
                                                             => ( X92 @ ( ap @ X96 @ X98 ) ) ) )
                                                       => ( ! [X100: term] :
                                                              ( ( X92 @ X100 )
                                                             => ( X92 @ ( lam @ X100 ) ) )
                                                         => ! [X102: term] : ( X92 @ X102 ) ) ) )
                                                 => ( ! [X104: term > $o,X106: term,X108: subst] :
                                                        ( ! [X110: term] :
                                                            ( ( var @ X110 )
                                                           => ( X104 @ ( sub @ X110 @ X108 ) ) )
                                                       => ( ( X104 @ X106 )
                                                         => ! [X112: term] :
                                                              ( ( var @ X112 )
                                                             => ( X104 @ ( sub @ X112 @ ( push @ X106 @ X108 ) ) ) ) ) )
                                                   => ( ! [X114: term > $o] :
                                                          ( ! [X116: term,X118: term] :
                                                              ( ( X114 @ X116 )
                                                             => ( ( X114 @ X118 )
                                                               => ( X114 @ ( ap @ X116 @ X118 ) ) ) )
                                                         => ( ! [X120: term] :
                                                                ( ! [X122: term] :
                                                                    ( ( X114 @ X122 )
                                                                   => ( X114 @ ( sub @ X120 @ ( push @ X122 @ id ) ) ) )
                                                               => ( X114 @ ( lam @ X120 ) ) )
                                                           => ! [X124: term,X126: subst] :
                                                                ( ! [X128: term] :
                                                                    ( ( var @ X128 )
                                                                   => ( X114 @ ( sub @ X128 @ X126 ) ) )
                                                               => ( X114 @ ( sub @ X124 @ X126 ) ) ) ) )
                                                     => ( ! [X130: term > $o] :
                                                            ( ! [X132: term] :
                                                                ( ( var @ X132 )
                                                               => ( X130 @ X132 ) )
                                                           => ( ! [X134: term,X136: term] :
                                                                  ( ( X130 @ X134 )
                                                                 => ( ( X130 @ X136 )
                                                                   => ( X130 @ ( ap @ X134 @ X136 ) ) ) )
                                                             => ( ! [X138: term] :
                                                                    ( ! [X140: term] :
                                                                        ( ( X130 @ X140 )
                                                                       => ( X130 @ ( sub @ X138 @ ( push @ X140 @ id ) ) ) )
                                                                   => ( X130 @ ( lam @ X138 ) ) )
                                                               => ! [X142: term] : ( X130 @ X142 ) ) ) )
                                                       => ( ( ! [X148: subst,X150: subst,X152: subst] :
                                                                ( ( comp @ ( comp @ X148 @ X150 ) @ X152 )
                                                                = ( comp @ X148 @ ( comp @ X150 @ X152 ) ) )
                                                            & ! [X146: subst] :
                                                                ( ( comp @ id @ X146 )
                                                                = X146 )
                                                            & ! [X144: subst] :
                                                                ( ( comp @ X144 @ id )
                                                                = X144 ) )
                                                         => ( ( ! [X156: term,X158: subst,X160: subst] :
                                                                  ( ( sub @ ( sub @ X156 @ X158 ) @ X160 )
                                                                  = ( sub @ X156 @ ( comp @ X158 @ X160 ) ) )
                                                              & ! [X154: term] :
                                                                  ( ( sub @ X154 @ id )
                                                                  = X154 ) )
                                                           => ! [X162: term,X164: term,X166: term,X168: term] :
                                                                ( ( ( ap @ ( sub @ X162 @ id ) @ X166 )
                                                                  = ( ap @ ( sub @ X164 @ id ) @ X168 ) )
                                                               => ( X162 = X164 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference('cnf.neg',[status(esa)],[zf_stmt_0]) ).

thf(zip_derived_cl0,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( ap @ Y0 @ Y1 ) @ Y2 )
                    = ( ap @ ( sub @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( sub @ one @ ( push @ Y0 @ Y1 ) )
                  = Y0 ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( sub @ Y0 @ id )
                = Y0 ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( ( sub @ ( lam @ Y0 ) @ Y1 )
                      = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ id @ Y0 )
                      = Y0 ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                            = Y1 ) ) )
                 => ( ( !!
                      @ ^ [Y0: subst] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: subst] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                                    = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: subst] :
                              ( ( comp @ Y0 @ id )
                              = Y0 ) )
                       => ( ( ( push @ one @ sh )
                            = id )
                         => ( ( !!
                              @ ^ [Y0: subst] :
                                  ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                                  = Y0 ) )
                           => ( ( var @ one )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( ( var @ Y0 )
                                     => ( var @ ( sub @ Y0 @ sh ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( Y0 @ one )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( ( Y0 @ Y1 )
                                                 => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( Y0 @ Y1 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( ( ap @ Y0 @ Y2 )
                                                        = ( ap @ Y1 @ Y3 ) )
                                                     => ( Y0 = Y1 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( ( ap @ Y0 @ Y2 )
                                                          = ( ap @ Y1 @ Y3 ) )
                                                       => ( Y2 = Y3 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( ( lam @ Y0 )
                                                    = ( lam @ Y1 ) )
                                                 => ( Y0 = Y1 ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( ( sub @ Y0 @ sh )
                                                      = ( sub @ Y1 @ sh ) )
                                                   => ( Y0 = Y1 ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( lam @ Y0 )
                                                         != ( ap @ Y1 @ Y2 ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( var @ Y1 )
                                                             => ( Y0 @ Y1 ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y1 )
                                                                   => ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term > $o] :
                                                          ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( var @ Y3 )
                                                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                 => ( ( Y0 @ Y1 )
                                                                   => ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( var @ Y3 )
                                                                         => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: term > $o] :
                                                            ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y1 )
                                                                     => ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ Y2 )
                                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( ( var @ Y3 )
                                                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                       => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: term > $o] :
                                                              ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( var @ Y1 )
                                                                   => ( Y0 @ Y1 ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ Y1 )
                                                                         => ( ( Y0 @ Y2 )
                                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( ( Y0 @ Y2 )
                                                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                       => ( ( ( !!
                                                              @ ^ [Y0: subst] :
                                                                  ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                            & ( !!
                                                              @ ^ [Y0: subst] :
                                                                  ( ( comp @ id @ Y0 )
                                                                  = Y0 ) )
                                                            & ( !!
                                                              @ ^ [Y0: subst] :
                                                                  ( ( comp @ Y0 @ id )
                                                                  = Y0 ) ) )
                                                         => ( ( ( !!
                                                                @ ^ [Y0: term] :
                                                                    ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: subst] :
                                                                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                              & ( !!
                                                                @ ^ [Y0: term] :
                                                                    ( ( sub @ Y0 @ id )
                                                                    = Y0 ) ) )
                                                           => ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                             => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(cnf,[status(esa)],[zf_stmt_1]) ).

thf(zip_derived_cl2,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( sub @ one @ ( push @ Y0 @ Y1 ) )
                = Y0 ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( ( sub @ Y0 @ id )
              = Y0 ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( ( sub @ ( lam @ Y0 ) @ Y1 )
                    = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ id @ Y0 )
                    = Y0 ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                          = Y1 ) ) )
               => ( ( !!
                    @ ^ [Y0: subst] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                                  = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: subst] :
                            ( ( comp @ Y0 @ id )
                            = Y0 ) )
                     => ( ( ( push @ one @ sh )
                          = id )
                       => ( ( !!
                            @ ^ [Y0: subst] :
                                ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                                = Y0 ) )
                         => ( ( var @ one )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( ( var @ Y0 )
                                   => ( var @ ( sub @ Y0 @ sh ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( Y0 @ one )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( ( Y0 @ Y1 )
                                               => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( Y0 @ Y1 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( ( ap @ Y0 @ Y2 )
                                                      = ( ap @ Y1 @ Y3 ) )
                                                   => ( Y0 = Y1 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( ( ap @ Y0 @ Y2 )
                                                        = ( ap @ Y1 @ Y3 ) )
                                                     => ( Y2 = Y3 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( ( ( lam @ Y0 )
                                                  = ( lam @ Y1 ) )
                                               => ( Y0 = Y1 ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( ( sub @ Y0 @ sh )
                                                    = ( sub @ Y1 @ sh ) )
                                                 => ( Y0 = Y1 ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( lam @ Y0 )
                                                       != ( ap @ Y1 @ Y2 ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( var @ Y1 )
                                                           => ( Y0 @ Y1 ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( var @ Y3 )
                                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                               => ( ( Y0 @ Y1 )
                                                                 => ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( var @ Y3 )
                                                                       => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term > $o] :
                                                          ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y1 )
                                                                   => ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( ( var @ Y3 )
                                                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                     => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: term > $o] :
                                                            ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( var @ Y1 )
                                                                 => ( Y0 @ Y1 ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ Y1 )
                                                                       => ( ( Y0 @ Y2 )
                                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( ( Y0 @ Y2 )
                                                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                               => ( !!
                                                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                     => ( ( ( !!
                                                            @ ^ [Y0: subst] :
                                                                ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                          & ( !!
                                                            @ ^ [Y0: subst] :
                                                                ( ( comp @ id @ Y0 )
                                                                = Y0 ) )
                                                          & ( !!
                                                            @ ^ [Y0: subst] :
                                                                ( ( comp @ Y0 @ id )
                                                                = Y0 ) ) )
                                                       => ( ( ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                            & ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( ( sub @ Y0 @ id )
                                                                  = Y0 ) ) )
                                                         => ( !!
                                                            @ ^ [Y0: term] :
                                                                ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                           => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl0]) ).

thf(zip_derived_cl5,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( ( sub @ Y0 @ id )
            = Y0 ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( sub @ ( lam @ Y0 ) @ Y1 )
                  = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( ( comp @ id @ Y0 )
                  = Y0 ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                        = Y1 ) ) )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                                = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: subst] :
                          ( ( comp @ Y0 @ id )
                          = Y0 ) )
                   => ( ( ( push @ one @ sh )
                        = id )
                     => ( ( !!
                          @ ^ [Y0: subst] :
                              ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                              = Y0 ) )
                       => ( ( var @ one )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( ( var @ Y0 )
                                 => ( var @ ( sub @ Y0 @ sh ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( Y0 @ one )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( ( Y0 @ Y1 )
                                             => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( Y0 @ Y1 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( ( ap @ Y0 @ Y2 )
                                                    = ( ap @ Y1 @ Y3 ) )
                                                 => ( Y0 = Y1 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( ( ap @ Y0 @ Y2 )
                                                      = ( ap @ Y1 @ Y3 ) )
                                                   => ( Y2 = Y3 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( ( ( lam @ Y0 )
                                                = ( lam @ Y1 ) )
                                             => ( Y0 = Y1 ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( ( ( sub @ Y0 @ sh )
                                                  = ( sub @ Y1 @ sh ) )
                                               => ( Y0 = Y1 ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( lam @ Y0 )
                                                     != ( ap @ Y1 @ Y2 ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( var @ Y1 )
                                                         => ( Y0 @ Y1 ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( var @ Y3 )
                                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                             => ( ( Y0 @ Y1 )
                                                               => ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( var @ Y3 )
                                                                     => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( var @ Y3 )
                                                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                   => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term > $o] :
                                                          ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( var @ Y1 )
                                                               => ( Y0 @ Y1 ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y1 )
                                                                     => ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ Y2 )
                                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                   => ( ( ( !!
                                                          @ ^ [Y0: subst] :
                                                              ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                        & ( !!
                                                          @ ^ [Y0: subst] :
                                                              ( ( comp @ id @ Y0 )
                                                              = Y0 ) )
                                                        & ( !!
                                                          @ ^ [Y0: subst] :
                                                              ( ( comp @ Y0 @ id )
                                                              = Y0 ) ) )
                                                     => ( ( ( !!
                                                            @ ^ [Y0: term] :
                                                                ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                          & ( !!
                                                            @ ^ [Y0: term] :
                                                                ( ( sub @ Y0 @ id )
                                                                = Y0 ) ) )
                                                       => ( !!
                                                          @ ^ [Y0: term] :
                                                              ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                         => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl2]) ).

thf(zip_derived_cl9,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( sub @ ( lam @ Y0 ) @ Y1 )
                = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( ( comp @ id @ Y0 )
                = Y0 ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                      = Y1 ) ) )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                              = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: subst] :
                        ( ( comp @ Y0 @ id )
                        = Y0 ) )
                 => ( ( ( push @ one @ sh )
                      = id )
                   => ( ( !!
                        @ ^ [Y0: subst] :
                            ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                            = Y0 ) )
                     => ( ( var @ one )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( ( var @ Y0 )
                               => ( var @ ( sub @ Y0 @ sh ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( Y0 @ one )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( ( Y0 @ Y1 )
                                           => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( Y0 @ Y1 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( ( ap @ Y0 @ Y2 )
                                                  = ( ap @ Y1 @ Y3 ) )
                                               => ( Y0 = Y1 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( ( ap @ Y0 @ Y2 )
                                                    = ( ap @ Y1 @ Y3 ) )
                                                 => ( Y2 = Y3 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( ( ( lam @ Y0 )
                                              = ( lam @ Y1 ) )
                                           => ( Y0 = Y1 ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( ( ( sub @ Y0 @ sh )
                                                = ( sub @ Y1 @ sh ) )
                                             => ( Y0 = Y1 ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( lam @ Y0 )
                                                   != ( ap @ Y1 @ Y2 ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( var @ Y1 )
                                                       => ( Y0 @ Y1 ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( var @ Y3 )
                                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                           => ( ( Y0 @ Y1 )
                                                             => ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( var @ Y3 )
                                                                   => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( var @ Y3 )
                                                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                 => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( var @ Y1 )
                                                             => ( Y0 @ Y1 ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y1 )
                                                                   => ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                 => ( ( ( !!
                                                        @ ^ [Y0: subst] :
                                                            ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                      & ( !!
                                                        @ ^ [Y0: subst] :
                                                            ( ( comp @ id @ Y0 )
                                                            = Y0 ) )
                                                      & ( !!
                                                        @ ^ [Y0: subst] :
                                                            ( ( comp @ Y0 @ id )
                                                            = Y0 ) ) )
                                                   => ( ( ( !!
                                                          @ ^ [Y0: term] :
                                                              ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                        & ( !!
                                                          @ ^ [Y0: term] :
                                                              ( ( sub @ Y0 @ id )
                                                              = Y0 ) ) )
                                                     => ( !!
                                                        @ ^ [Y0: term] :
                                                            ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                       => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl5]) ).

thf(zip_derived_cl14,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( ( comp @ id @ Y0 )
              = Y0 ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                    = Y1 ) ) )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                            = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ Y0 @ id )
                      = Y0 ) )
               => ( ( ( push @ one @ sh )
                    = id )
                 => ( ( !!
                      @ ^ [Y0: subst] :
                          ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                          = Y0 ) )
                   => ( ( var @ one )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( ( var @ Y0 )
                             => ( var @ ( sub @ Y0 @ sh ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( Y0 @ one )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( ( Y0 @ Y1 )
                                         => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( Y0 @ Y1 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( ( ap @ Y0 @ Y2 )
                                                = ( ap @ Y1 @ Y3 ) )
                                             => ( Y0 = Y1 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( ( ap @ Y0 @ Y2 )
                                                  = ( ap @ Y1 @ Y3 ) )
                                               => ( Y2 = Y3 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( ( ( lam @ Y0 )
                                            = ( lam @ Y1 ) )
                                         => ( Y0 = Y1 ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( ( ( sub @ Y0 @ sh )
                                              = ( sub @ Y1 @ sh ) )
                                           => ( Y0 = Y1 ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( lam @ Y0 )
                                                 != ( ap @ Y1 @ Y2 ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( var @ Y1 )
                                                     => ( Y0 @ Y1 ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( var @ Y3 )
                                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                         => ( ( Y0 @ Y1 )
                                                           => ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( var @ Y3 )
                                                                 => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( var @ Y3 )
                                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                               => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( var @ Y1 )
                                                           => ( Y0 @ Y1 ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                               => ( ( ( !!
                                                      @ ^ [Y0: subst] :
                                                          ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                    & ( !!
                                                      @ ^ [Y0: subst] :
                                                          ( ( comp @ id @ Y0 )
                                                          = Y0 ) )
                                                    & ( !!
                                                      @ ^ [Y0: subst] :
                                                          ( ( comp @ Y0 @ id )
                                                          = Y0 ) ) )
                                                 => ( ( ( !!
                                                        @ ^ [Y0: term] :
                                                            ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                      & ( !!
                                                        @ ^ [Y0: term] :
                                                            ( ( sub @ Y0 @ id )
                                                            = Y0 ) ) )
                                                   => ( !!
                                                      @ ^ [Y0: term] :
                                                          ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                     => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl9]) ).

thf(zip_derived_cl20,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( ( comp @ id @ Y0 )
            = Y0 ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                  = Y1 ) ) )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                          = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ Y0 @ id )
                    = Y0 ) )
             => ( ( ( push @ one @ sh )
                  = id )
               => ( ( !!
                    @ ^ [Y0: subst] :
                        ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                        = Y0 ) )
                 => ( ( var @ one )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( ( var @ Y0 )
                           => ( var @ ( sub @ Y0 @ sh ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( Y0 @ one )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( ( Y0 @ Y1 )
                                       => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( Y0 @ Y1 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( ( ap @ Y0 @ Y2 )
                                              = ( ap @ Y1 @ Y3 ) )
                                           => ( Y0 = Y1 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( ( ap @ Y0 @ Y2 )
                                                = ( ap @ Y1 @ Y3 ) )
                                             => ( Y2 = Y3 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( ( ( lam @ Y0 )
                                          = ( lam @ Y1 ) )
                                       => ( Y0 = Y1 ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( ( ( sub @ Y0 @ sh )
                                            = ( sub @ Y1 @ sh ) )
                                         => ( Y0 = Y1 ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( lam @ Y0 )
                                               != ( ap @ Y1 @ Y2 ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( var @ Y1 )
                                                   => ( Y0 @ Y1 ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( var @ Y3 )
                                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                       => ( ( Y0 @ Y1 )
                                                         => ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( var @ Y3 )
                                                               => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( var @ Y3 )
                                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                             => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( var @ Y1 )
                                                         => ( Y0 @ Y1 ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                             => ( ( ( !!
                                                    @ ^ [Y0: subst] :
                                                        ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                  & ( !!
                                                    @ ^ [Y0: subst] :
                                                        ( ( comp @ id @ Y0 )
                                                        = Y0 ) )
                                                  & ( !!
                                                    @ ^ [Y0: subst] :
                                                        ( ( comp @ Y0 @ id )
                                                        = Y0 ) ) )
                                               => ( ( ( !!
                                                      @ ^ [Y0: term] :
                                                          ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                  = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                    & ( !!
                                                      @ ^ [Y0: term] :
                                                          ( ( sub @ Y0 @ id )
                                                          = Y0 ) ) )
                                                 => ( !!
                                                    @ ^ [Y0: term] :
                                                        ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                   => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl14]) ).

thf(zip_derived_cl24,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                = Y1 ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                        = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( ( comp @ Y0 @ id )
                  = Y0 ) )
           => ( ( ( push @ one @ sh )
                = id )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                      = Y0 ) )
               => ( ( var @ one )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( ( var @ Y0 )
                         => ( var @ ( sub @ Y0 @ sh ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( Y0 @ one )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( ( Y0 @ Y1 )
                                     => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( Y0 @ Y1 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( ( ap @ Y0 @ Y2 )
                                            = ( ap @ Y1 @ Y3 ) )
                                         => ( Y0 = Y1 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( ( ap @ Y0 @ Y2 )
                                              = ( ap @ Y1 @ Y3 ) )
                                           => ( Y2 = Y3 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( ( ( lam @ Y0 )
                                        = ( lam @ Y1 ) )
                                     => ( Y0 = Y1 ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( ( ( sub @ Y0 @ sh )
                                          = ( sub @ Y1 @ sh ) )
                                       => ( Y0 = Y1 ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( lam @ Y0 )
                                             != ( ap @ Y1 @ Y2 ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( var @ Y1 )
                                                 => ( Y0 @ Y1 ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( var @ Y3 )
                                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                     => ( ( Y0 @ Y1 )
                                                       => ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( var @ Y3 )
                                                             => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( var @ Y3 )
                                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                           => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( var @ Y1 )
                                                       => ( Y0 @ Y1 ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                           => ( ( ( !!
                                                  @ ^ [Y0: subst] :
                                                      ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                & ( !!
                                                  @ ^ [Y0: subst] :
                                                      ( ( comp @ id @ Y0 )
                                                      = Y0 ) )
                                                & ( !!
                                                  @ ^ [Y0: subst] :
                                                      ( ( comp @ Y0 @ id )
                                                      = Y0 ) ) )
                                             => ( ( ( !!
                                                    @ ^ [Y0: term] :
                                                        ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                  & ( !!
                                                    @ ^ [Y0: term] :
                                                        ( ( sub @ Y0 @ id )
                                                        = Y0 ) ) )
                                               => ( !!
                                                  @ ^ [Y0: term] :
                                                      ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                 => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl20]) ).

thf(zip_derived_cl29,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                      = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( ( comp @ Y0 @ id )
                = Y0 ) )
         => ( ( ( push @ one @ sh )
              = id )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                    = Y0 ) )
             => ( ( var @ one )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( ( var @ Y0 )
                       => ( var @ ( sub @ Y0 @ sh ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( Y0 @ one )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( ( Y0 @ Y1 )
                                   => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( Y0 @ Y1 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( ( ap @ Y0 @ Y2 )
                                          = ( ap @ Y1 @ Y3 ) )
                                       => ( Y0 = Y1 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( ( ap @ Y0 @ Y2 )
                                            = ( ap @ Y1 @ Y3 ) )
                                         => ( Y2 = Y3 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( ( ( lam @ Y0 )
                                      = ( lam @ Y1 ) )
                                   => ( Y0 = Y1 ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( ( ( sub @ Y0 @ sh )
                                        = ( sub @ Y1 @ sh ) )
                                     => ( Y0 = Y1 ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( lam @ Y0 )
                                           != ( ap @ Y1 @ Y2 ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( Y0 @ Y1 ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( var @ Y3 )
                                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                   => ( ( Y0 @ Y1 )
                                                     => ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( var @ Y3 )
                                                           => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( var @ Y3 )
                                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                         => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( var @ Y1 )
                                                     => ( Y0 @ Y1 ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                         => ( ( ( !!
                                                @ ^ [Y0: subst] :
                                                    ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                              & ( !!
                                                @ ^ [Y0: subst] :
                                                    ( ( comp @ id @ Y0 )
                                                    = Y0 ) )
                                              & ( !!
                                                @ ^ [Y0: subst] :
                                                    ( ( comp @ Y0 @ id )
                                                    = Y0 ) ) )
                                           => ( ( ( !!
                                                  @ ^ [Y0: term] :
                                                      ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                              = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                & ( !!
                                                  @ ^ [Y0: term] :
                                                      ( ( sub @ Y0 @ id )
                                                      = Y0 ) ) )
                                             => ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                               => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl24]) ).

thf(zip_derived_cl34,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                    = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( ( comp @ Y0 @ id )
              = Y0 ) )
       => ( ( ( push @ one @ sh )
            = id )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                  = Y0 ) )
           => ( ( var @ one )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( ( var @ Y0 )
                     => ( var @ ( sub @ Y0 @ sh ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( Y0 @ one )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( ( Y0 @ Y1 )
                                 => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( Y0 @ Y1 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( ( ap @ Y0 @ Y2 )
                                        = ( ap @ Y1 @ Y3 ) )
                                     => ( Y0 = Y1 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( ( ap @ Y0 @ Y2 )
                                          = ( ap @ Y1 @ Y3 ) )
                                       => ( Y2 = Y3 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( ( ( lam @ Y0 )
                                    = ( lam @ Y1 ) )
                                 => ( Y0 = Y1 ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( ( ( sub @ Y0 @ sh )
                                      = ( sub @ Y1 @ sh ) )
                                   => ( Y0 = Y1 ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( lam @ Y0 )
                                         != ( ap @ Y1 @ Y2 ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( Y0 @ Y1 ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( var @ Y3 )
                                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                 => ( ( Y0 @ Y1 )
                                                   => ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( var @ Y3 )
                                                         => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( var @ Y3 )
                                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                       => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( var @ Y1 )
                                                   => ( Y0 @ Y1 ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                       => ( ( ( !!
                                              @ ^ [Y0: subst] :
                                                  ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                            & ( !!
                                              @ ^ [Y0: subst] :
                                                  ( ( comp @ id @ Y0 )
                                                  = Y0 ) )
                                            & ( !!
                                              @ ^ [Y0: subst] :
                                                  ( ( comp @ Y0 @ id )
                                                  = Y0 ) ) )
                                         => ( ( ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                              & ( !!
                                                @ ^ [Y0: term] :
                                                    ( ( sub @ Y0 @ id )
                                                    = Y0 ) ) )
                                           => ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                             => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl29]) ).

thf(zip_derived_cl39,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( ( comp @ Y0 @ id )
            = Y0 ) )
     => ( ( ( push @ one @ sh )
          = id )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                = Y0 ) )
         => ( ( var @ one )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( ( var @ Y0 )
                   => ( var @ ( sub @ Y0 @ sh ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( Y0 @ one )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( ( Y0 @ Y1 )
                               => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( Y0 @ Y1 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( ( ap @ Y0 @ Y2 )
                                      = ( ap @ Y1 @ Y3 ) )
                                   => ( Y0 = Y1 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( ( ap @ Y0 @ Y2 )
                                        = ( ap @ Y1 @ Y3 ) )
                                     => ( Y2 = Y3 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( ( ( lam @ Y0 )
                                  = ( lam @ Y1 ) )
                               => ( Y0 = Y1 ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( ( ( sub @ Y0 @ sh )
                                    = ( sub @ Y1 @ sh ) )
                                 => ( Y0 = Y1 ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( lam @ Y0 )
                                       != ( ap @ Y1 @ Y2 ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( Y0 @ Y1 ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( var @ Y3 )
                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                               => ( ( Y0 @ Y1 )
                                                 => ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( var @ Y3 )
                                                       => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( var @ Y3 )
                                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                     => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( var @ Y1 )
                                                 => ( Y0 @ Y1 ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                     => ( ( ( !!
                                            @ ^ [Y0: subst] :
                                                ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                          & ( !!
                                            @ ^ [Y0: subst] :
                                                ( ( comp @ id @ Y0 )
                                                = Y0 ) )
                                          & ( !!
                                            @ ^ [Y0: subst] :
                                                ( ( comp @ Y0 @ id )
                                                = Y0 ) ) )
                                       => ( ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                            & ( !!
                                              @ ^ [Y0: term] :
                                                  ( ( sub @ Y0 @ id )
                                                  = Y0 ) ) )
                                         => ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                           => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl34]) ).

thf(zip_derived_cl44,plain,
    ~ ( ( ( push @ one @ sh )
        = id )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
              = Y0 ) )
       => ( ( var @ one )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( ( var @ Y0 )
                 => ( var @ ( sub @ Y0 @ sh ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( Y0 @ one )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( ( Y0 @ Y1 )
                             => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( Y0 @ Y1 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( ( ( ap @ Y0 @ Y2 )
                                    = ( ap @ Y1 @ Y3 ) )
                                 => ( Y0 = Y1 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( ( ap @ Y0 @ Y2 )
                                      = ( ap @ Y1 @ Y3 ) )
                                   => ( Y2 = Y3 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( ( ( lam @ Y0 )
                                = ( lam @ Y1 ) )
                             => ( Y0 = Y1 ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( ( ( sub @ Y0 @ sh )
                                  = ( sub @ Y1 @ sh ) )
                               => ( Y0 = Y1 ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( lam @ Y0 )
                                     != ( ap @ Y1 @ Y2 ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( Y0 @ Y1 ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( var @ Y3 )
                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                             => ( ( Y0 @ Y1 )
                                               => ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( var @ Y3 )
                                                     => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( var @ Y3 )
                                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                   => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( Y0 @ Y1 ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                   => ( ( ( !!
                                          @ ^ [Y0: subst] :
                                              ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                        & ( !!
                                          @ ^ [Y0: subst] :
                                              ( ( comp @ id @ Y0 )
                                              = Y0 ) )
                                        & ( !!
                                          @ ^ [Y0: subst] :
                                              ( ( comp @ Y0 @ id )
                                              = Y0 ) ) )
                                     => ( ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                          & ( !!
                                            @ ^ [Y0: term] :
                                                ( ( sub @ Y0 @ id )
                                                = Y0 ) ) )
                                       => ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                         => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl39]) ).

thf(zip_derived_cl49,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
            = Y0 ) )
     => ( ( var @ one )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( var @ Y0 )
               => ( var @ ( sub @ Y0 @ sh ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( Y0 @ one )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( ( Y0 @ Y1 )
                           => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( Y0 @ Y1 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( !!
                            @ ^ [Y3: term] :
                                ( ( ( ap @ Y0 @ Y2 )
                                  = ( ap @ Y1 @ Y3 ) )
                               => ( Y0 = Y1 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( ( ( ap @ Y0 @ Y2 )
                                    = ( ap @ Y1 @ Y3 ) )
                                 => ( Y2 = Y3 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( ( ( lam @ Y0 )
                              = ( lam @ Y1 ) )
                           => ( Y0 = Y1 ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( ( ( sub @ Y0 @ sh )
                                = ( sub @ Y1 @ sh ) )
                             => ( Y0 = Y1 ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( lam @ Y0 )
                                   != ( ap @ Y1 @ Y2 ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( Y0 @ Y1 ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( var @ Y3 )
                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                           => ( ( Y0 @ Y1 )
                                             => ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( var @ Y3 )
                                                   => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( var @ Y3 )
                                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                 => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( Y0 @ Y1 ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                 => ( ( ( !!
                                        @ ^ [Y0: subst] :
                                            ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                      & ( !!
                                        @ ^ [Y0: subst] :
                                            ( ( comp @ id @ Y0 )
                                            = Y0 ) )
                                      & ( !!
                                        @ ^ [Y0: subst] :
                                            ( ( comp @ Y0 @ id )
                                            = Y0 ) ) )
                                   => ( ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                        & ( !!
                                          @ ^ [Y0: term] :
                                              ( ( sub @ Y0 @ id )
                                              = Y0 ) ) )
                                     => ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                       => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl44]) ).

thf(zip_derived_cl55,plain,
    ~ ( ( var @ one )
     => ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( var @ ( sub @ Y0 @ sh ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( Y0 @ one )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( ( Y0 @ Y1 )
                         => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                 => ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( Y0 @ Y1 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: term] :
                              ( ( ( ap @ Y0 @ Y2 )
                                = ( ap @ Y1 @ Y3 ) )
                             => ( Y0 = Y1 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( !!
                            @ ^ [Y3: term] :
                                ( ( ( ap @ Y0 @ Y2 )
                                  = ( ap @ Y1 @ Y3 ) )
                               => ( Y2 = Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( ( ( lam @ Y0 )
                            = ( lam @ Y1 ) )
                         => ( Y0 = Y1 ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( ( ( sub @ Y0 @ sh )
                              = ( sub @ Y1 @ sh ) )
                           => ( Y0 = Y1 ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( lam @ Y0 )
                                 != ( ap @ Y1 @ Y2 ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( Y0 @ Y1 ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( !!
                                            @ ^ [Y3: term] :
                                                ( ( var @ Y3 )
                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                         => ( ( Y0 @ Y1 )
                                           => ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( var @ Y3 )
                                                 => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( var @ Y3 )
                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                               => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( Y0 @ Y1 ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                               => ( ( ( !!
                                      @ ^ [Y0: subst] :
                                          ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                    & ( !!
                                      @ ^ [Y0: subst] :
                                          ( ( comp @ id @ Y0 )
                                          = Y0 ) )
                                    & ( !!
                                      @ ^ [Y0: subst] :
                                          ( ( comp @ Y0 @ id )
                                          = Y0 ) ) )
                                 => ( ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                      & ( !!
                                        @ ^ [Y0: term] :
                                            ( ( sub @ Y0 @ id )
                                            = Y0 ) ) )
                                   => ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                     => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl49]) ).

thf(zip_derived_cl59,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( ( var @ Y0 )
           => ( var @ ( sub @ Y0 @ sh ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( ( Y0 @ one )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( ( Y0 @ Y1 )
                       => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
               => ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( Y0 @ Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: term] :
                            ( ( ( ap @ Y0 @ Y2 )
                              = ( ap @ Y1 @ Y3 ) )
                           => ( Y0 = Y1 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: term] :
                              ( ( ( ap @ Y0 @ Y2 )
                                = ( ap @ Y1 @ Y3 ) )
                             => ( Y2 = Y3 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( ( ( lam @ Y0 )
                          = ( lam @ Y1 ) )
                       => ( Y0 = Y1 ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( ( ( sub @ Y0 @ sh )
                            = ( sub @ Y1 @ sh ) )
                         => ( Y0 = Y1 ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( lam @ Y0 )
                               != ( ap @ Y1 @ Y2 ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( Y0 @ Y1 ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( !!
                                          @ ^ [Y3: term] :
                                              ( ( var @ Y3 )
                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                       => ( ( Y0 @ Y1 )
                                         => ( !!
                                            @ ^ [Y3: term] :
                                                ( ( var @ Y3 )
                                               => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( var @ Y3 )
                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                             => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( Y0 @ Y1 ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                             => ( ( ( !!
                                    @ ^ [Y0: subst] :
                                        ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                  & ( !!
                                    @ ^ [Y0: subst] :
                                        ( ( comp @ id @ Y0 )
                                        = Y0 ) )
                                  & ( !!
                                    @ ^ [Y0: subst] :
                                        ( ( comp @ Y0 @ id )
                                        = Y0 ) ) )
                               => ( ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                  = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                    & ( !!
                                      @ ^ [Y0: term] :
                                          ( ( sub @ Y0 @ id )
                                          = Y0 ) ) )
                                 => ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                   => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl55]) ).

thf(zip_derived_cl62,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( ( Y0 @ one )
           => ( ( !!
                @ ^ [Y1: term] :
                    ( ( var @ Y1 )
                   => ( ( Y0 @ Y1 )
                     => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
             => ( !!
                @ ^ [Y1: term] :
                    ( ( var @ Y1 )
                   => ( Y0 @ Y1 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: term] :
                          ( ( ( ap @ Y0 @ Y2 )
                            = ( ap @ Y1 @ Y3 ) )
                         => ( Y0 = Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: term] :
                            ( ( ( ap @ Y0 @ Y2 )
                              = ( ap @ Y1 @ Y3 ) )
                           => ( Y2 = Y3 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( ( ( lam @ Y0 )
                        = ( lam @ Y1 ) )
                     => ( Y0 = Y1 ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( ( ( sub @ Y0 @ sh )
                          = ( sub @ Y1 @ sh ) )
                       => ( Y0 = Y1 ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( lam @ Y0 )
                             != ( ap @ Y1 @ Y2 ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( Y0 @ Y1 ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( !!
                                        @ ^ [Y3: term] :
                                            ( ( var @ Y3 )
                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                     => ( ( Y0 @ Y1 )
                                       => ( !!
                                          @ ^ [Y3: term] :
                                              ( ( var @ Y3 )
                                             => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( var @ Y3 )
                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                           => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( Y0 @ Y1 ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                           => ( ( ( !!
                                  @ ^ [Y0: subst] :
                                      ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                & ( !!
                                  @ ^ [Y0: subst] :
                                      ( ( comp @ id @ Y0 )
                                      = Y0 ) )
                                & ( !!
                                  @ ^ [Y0: subst] :
                                      ( ( comp @ Y0 @ id )
                                      = Y0 ) ) )
                             => ( ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                  & ( !!
                                    @ ^ [Y0: term] :
                                        ( ( sub @ Y0 @ id )
                                        = Y0 ) ) )
                               => ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                 => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl59]) ).

thf(zip_derived_cl65,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: term] :
                        ( ( ( ap @ Y0 @ Y2 )
                          = ( ap @ Y1 @ Y3 ) )
                       => ( Y0 = Y1 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: term] :
                          ( ( ( ap @ Y0 @ Y2 )
                            = ( ap @ Y1 @ Y3 ) )
                         => ( Y2 = Y3 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( ( ( lam @ Y0 )
                      = ( lam @ Y1 ) )
                   => ( Y0 = Y1 ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( ( ( sub @ Y0 @ sh )
                        = ( sub @ Y1 @ sh ) )
                     => ( Y0 = Y1 ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( lam @ Y0 )
                           != ( ap @ Y1 @ Y2 ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( Y0 @ Y1 ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( !!
                                      @ ^ [Y3: term] :
                                          ( ( var @ Y3 )
                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                   => ( ( Y0 @ Y1 )
                                     => ( !!
                                        @ ^ [Y3: term] :
                                            ( ( var @ Y3 )
                                           => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( !!
                                            @ ^ [Y3: term] :
                                                ( ( var @ Y3 )
                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                         => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( Y0 @ Y1 ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                         => ( ( ( !!
                                @ ^ [Y0: subst] :
                                    ( !!
                                    @ ^ [Y1: subst] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                              & ( !!
                                @ ^ [Y0: subst] :
                                    ( ( comp @ id @ Y0 )
                                    = Y0 ) )
                              & ( !!
                                @ ^ [Y0: subst] :
                                    ( ( comp @ Y0 @ id )
                                    = Y0 ) ) )
                           => ( ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                              = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                & ( !!
                                  @ ^ [Y0: term] :
                                      ( ( sub @ Y0 @ id )
                                      = Y0 ) ) )
                             => ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                               => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl62]) ).

thf(zip_derived_cl69,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: term] :
                        ( ( ( ap @ Y0 @ Y2 )
                          = ( ap @ Y1 @ Y3 ) )
                       => ( Y2 = Y3 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( ( lam @ Y0 )
                    = ( lam @ Y1 ) )
                 => ( Y0 = Y1 ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( ( ( sub @ Y0 @ sh )
                      = ( sub @ Y1 @ sh ) )
                   => ( Y0 = Y1 ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( ( lam @ Y0 )
                         != ( ap @ Y1 @ Y2 ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( Y0 @ Y1 ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( !!
                                    @ ^ [Y3: term] :
                                        ( ( var @ Y3 )
                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                 => ( ( Y0 @ Y1 )
                                   => ( !!
                                      @ ^ [Y3: term] :
                                          ( ( var @ Y3 )
                                         => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( !!
                                          @ ^ [Y3: term] :
                                              ( ( var @ Y3 )
                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                       => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( Y0 @ Y1 ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                       => ( ( ( !!
                              @ ^ [Y0: subst] :
                                  ( !!
                                  @ ^ [Y1: subst] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                            & ( !!
                              @ ^ [Y0: subst] :
                                  ( ( comp @ id @ Y0 )
                                  = Y0 ) )
                            & ( !!
                              @ ^ [Y0: subst] :
                                  ( ( comp @ Y0 @ id )
                                  = Y0 ) ) )
                         => ( ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: subst] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                              & ( !!
                                @ ^ [Y0: term] :
                                    ( ( sub @ Y0 @ id )
                                    = Y0 ) ) )
                           => ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                             => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl65]) ).

thf(zip_derived_cl73,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( ( lam @ Y0 )
                  = ( lam @ Y1 ) )
               => ( Y0 = Y1 ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( ( sub @ Y0 @ sh )
                    = ( sub @ Y1 @ sh ) )
                 => ( Y0 = Y1 ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( lam @ Y0 )
                       != ( ap @ Y1 @ Y2 ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( Y0 @ Y1 ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( Y0 @ Y1 )
                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( !!
                                  @ ^ [Y3: term] :
                                      ( ( var @ Y3 )
                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                               => ( ( Y0 @ Y1 )
                                 => ( !!
                                    @ ^ [Y3: term] :
                                        ( ( var @ Y3 )
                                       => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( !!
                                        @ ^ [Y3: term] :
                                            ( ( var @ Y3 )
                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                     => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( Y0 @ Y1 ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                     => ( ( ( !!
                            @ ^ [Y0: subst] :
                                ( !!
                                @ ^ [Y1: subst] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                          & ( !!
                            @ ^ [Y0: subst] :
                                ( ( comp @ id @ Y0 )
                                = Y0 ) )
                          & ( !!
                            @ ^ [Y0: subst] :
                                ( ( comp @ Y0 @ id )
                                = Y0 ) ) )
                       => ( ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: subst] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                            & ( !!
                              @ ^ [Y0: term] :
                                  ( ( sub @ Y0 @ id )
                                  = Y0 ) ) )
                         => ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                           => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl69]) ).

thf(zip_derived_cl78,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( ( sub @ Y0 @ sh )
                  = ( sub @ Y1 @ sh ) )
               => ( Y0 = Y1 ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( ( lam @ Y0 )
                     != ( ap @ Y1 @ Y2 ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( Y0 @ Y1 ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y1 )
                               => ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( Y0 @ Y1 )
                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( !!
                                @ ^ [Y3: term] :
                                    ( ( var @ Y3 )
                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                             => ( ( Y0 @ Y1 )
                               => ( !!
                                  @ ^ [Y3: term] :
                                      ( ( var @ Y3 )
                                     => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( !!
                                      @ ^ [Y3: term] :
                                          ( ( var @ Y3 )
                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                   => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( Y0 @ Y1 ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                   => ( ( ( !!
                          @ ^ [Y0: subst] :
                              ( !!
                              @ ^ [Y1: subst] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                        & ( !!
                          @ ^ [Y0: subst] :
                              ( ( comp @ id @ Y0 )
                              = Y0 ) )
                        & ( !!
                          @ ^ [Y0: subst] :
                              ( ( comp @ Y0 @ id )
                              = Y0 ) ) )
                     => ( ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: subst] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                          & ( !!
                            @ ^ [Y0: term] :
                                ( ( sub @ Y0 @ id )
                                = Y0 ) ) )
                       => ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                         => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl73]) ).

thf(zip_derived_cl84,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( ( lam @ Y0 )
                   != ( ap @ Y1 @ Y2 ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( Y0 @ Y1 ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y1 )
                             => ( ( Y0 @ Y2 )
                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( Y0 @ Y1 )
                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( !!
                              @ ^ [Y3: term] :
                                  ( ( var @ Y3 )
                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                           => ( ( Y0 @ Y1 )
                             => ( !!
                                @ ^ [Y3: term] :
                                    ( ( var @ Y3 )
                                   => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y1 )
                               => ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( !!
                                    @ ^ [Y3: term] :
                                        ( ( var @ Y3 )
                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                 => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( Y0 @ Y1 ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                 => ( ( ( !!
                        @ ^ [Y0: subst] :
                            ( !!
                            @ ^ [Y1: subst] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                      & ( !!
                        @ ^ [Y0: subst] :
                            ( ( comp @ id @ Y0 )
                            = Y0 ) )
                      & ( !!
                        @ ^ [Y0: subst] :
                            ( ( comp @ Y0 @ id )
                            = Y0 ) ) )
                   => ( ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: subst] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                        & ( !!
                          @ ^ [Y0: term] :
                              ( ( sub @ Y0 @ id )
                              = Y0 ) ) )
                     => ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                       => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl78]) ).

thf(zip_derived_cl92,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( Y0 @ Y1 ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y1 )
                           => ( ( Y0 @ Y2 )
                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( Y0 @ Y1 )
                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( !!
                            @ ^ [Y3: term] :
                                ( ( var @ Y3 )
                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                         => ( ( Y0 @ Y1 )
                           => ( !!
                              @ ^ [Y3: term] :
                                  ( ( var @ Y3 )
                                 => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y1 )
                             => ( ( Y0 @ Y2 )
                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( !!
                                  @ ^ [Y3: term] :
                                      ( ( var @ Y3 )
                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                               => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( Y0 @ Y1 ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
               => ( ( ( !!
                      @ ^ [Y0: subst] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                    & ( !!
                      @ ^ [Y0: subst] :
                          ( ( comp @ id @ Y0 )
                          = Y0 ) )
                    & ( !!
                      @ ^ [Y0: subst] :
                          ( ( comp @ Y0 @ id )
                          = Y0 ) ) )
                 => ( ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: subst] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                      & ( !!
                        @ ^ [Y0: term] :
                            ( ( sub @ Y0 @ id )
                            = Y0 ) ) )
                   => ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                     => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl84]) ).

thf(zip_derived_cl102,plain,
    ~ ( ( !!
        @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( var @ Y1 )
                   => ( Y0 @ Y1 ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( ( Y0 @ Y1 )
                         => ( ( Y0 @ Y2 )
                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( Y0 @ Y1 )
                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                 => ( !!
                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( !!
                          @ ^ [Y3: term] :
                              ( ( var @ Y3 )
                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                       => ( ( Y0 @ Y1 )
                         => ( !!
                            @ ^ [Y3: term] :
                                ( ( var @ Y3 )
                               => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y1 )
                           => ( ( Y0 @ Y2 )
                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y2 )
                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( !!
                                @ ^ [Y3: term] :
                                    ( ( var @ Y3 )
                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                             => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( Y0 @ Y1 ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y1 )
                               => ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
             => ( ( ( !!
                    @ ^ [Y0: subst] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                  & ( !!
                    @ ^ [Y0: subst] :
                        ( ( comp @ id @ Y0 )
                        = Y0 ) )
                  & ( !!
                    @ ^ [Y0: subst] :
                        ( ( comp @ Y0 @ id )
                        = Y0 ) ) )
               => ( ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                  = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                    & ( !!
                      @ ^ [Y0: term] :
                          ( ( sub @ Y0 @ id )
                          = Y0 ) ) )
                 => ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                   => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl92]) ).

thf(zip_derived_cl113,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( var @ Y1 )
                 => ( Y0 @ Y1 ) ) )
           => ( ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( Y0 @ Y1 )
                       => ( ( Y0 @ Y2 )
                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( Y0 @ Y1 )
                     => ( Y0 @ ( lam @ Y1 ) ) ) )
               => ( !!
                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( !!
                        @ ^ [Y3: term] :
                            ( ( var @ Y3 )
                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                     => ( ( Y0 @ Y1 )
                       => ( !!
                          @ ^ [Y3: term] :
                              ( ( var @ Y3 )
                             => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( ( Y0 @ Y1 )
                         => ( ( Y0 @ Y2 )
                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y2 )
                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                 => ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( !!
                              @ ^ [Y3: term] :
                                  ( ( var @ Y3 )
                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                           => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( Y0 @ Y1 ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y1 )
                             => ( ( Y0 @ Y2 )
                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
           => ( ( ( !!
                  @ ^ [Y0: subst] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                & ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ id @ Y0 )
                      = Y0 ) )
                & ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ Y0 @ id )
                      = Y0 ) ) )
             => ( ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                  & ( !!
                    @ ^ [Y0: term] :
                        ( ( sub @ Y0 @ id )
                        = Y0 ) ) )
               => ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                 => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl102]) ).

thf(zip_derived_cl122,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( !!
                      @ ^ [Y3: term] :
                          ( ( var @ Y3 )
                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                   => ( ( Y0 @ Y1 )
                     => ( !!
                        @ ^ [Y3: term] :
                            ( ( var @ Y3 )
                           => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( Y0 @ Y1 )
                       => ( ( Y0 @ Y2 )
                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y2 )
                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                     => ( Y0 @ ( lam @ Y1 ) ) ) )
               => ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( !!
                            @ ^ [Y3: term] :
                                ( ( var @ Y3 )
                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                         => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( Y0 @ Y1 ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y1 )
                           => ( ( Y0 @ Y2 )
                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y2 )
                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
         => ( ( ( !!
                @ ^ [Y0: subst] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
              & ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ id @ Y0 )
                    = Y0 ) )
              & ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ Y0 @ id )
                    = Y0 ) ) )
           => ( ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                              = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                & ( !!
                  @ ^ [Y0: term] :
                      ( ( sub @ Y0 @ id )
                      = Y0 ) ) )
             => ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( !!
                            @ ^ [Y3: term] :
                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                               => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl113]) ).

thf(zip_derived_cl126,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( ( Y0 @ Y1 )
                     => ( ( Y0 @ Y2 )
                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y1: term] :
                    ( ( !!
                      @ ^ [Y2: term] :
                          ( ( Y0 @ Y2 )
                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                   => ( Y0 @ ( lam @ Y1 ) ) ) )
             => ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( !!
                          @ ^ [Y3: term] :
                              ( ( var @ Y3 )
                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                       => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( var @ Y1 )
                   => ( Y0 @ Y1 ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( ( Y0 @ Y1 )
                         => ( ( Y0 @ Y2 )
                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y2 )
                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                 => ( !!
                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
       => ( ( ( !!
              @ ^ [Y0: subst] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
            & ( !!
              @ ^ [Y0: subst] :
                  ( ( comp @ id @ Y0 )
                  = Y0 ) )
            & ( !!
              @ ^ [Y0: subst] :
                  ( ( comp @ Y0 @ id )
                  = Y0 ) ) )
         => ( ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
              & ( !!
                @ ^ [Y0: term] :
                    ( ( sub @ Y0 @ id )
                    = Y0 ) ) )
           => ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: term] :
                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                             => ( Y0 = Y1 ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl122]) ).

thf(zip_derived_cl130,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( var @ Y1 )
                 => ( Y0 @ Y1 ) ) )
           => ( ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( Y0 @ Y1 )
                       => ( ( Y0 @ Y2 )
                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y2 )
                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                     => ( Y0 @ ( lam @ Y1 ) ) ) )
               => ( !!
                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
     => ( ( ( !!
            @ ^ [Y0: subst] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
          & ( !!
            @ ^ [Y0: subst] :
                ( ( comp @ id @ Y0 )
                = Y0 ) )
          & ( !!
            @ ^ [Y0: subst] :
                ( ( comp @ Y0 @ id )
                = Y0 ) ) )
       => ( ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
            & ( !!
              @ ^ [Y0: term] :
                  ( ( sub @ Y0 @ id )
                  = Y0 ) ) )
         => ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: term] :
                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                           => ( Y0 = Y1 ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl126]) ).

thf(zip_derived_cl135,plain,
    ~ ( ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
        & ( !!
          @ ^ [Y0: subst] :
              ( ( comp @ id @ Y0 )
              = Y0 ) )
        & ( !!
          @ ^ [Y0: subst] :
              ( ( comp @ Y0 @ id )
              = Y0 ) ) )
     => ( ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
          & ( !!
            @ ^ [Y0: term] :
                ( ( sub @ Y0 @ id )
                = Y0 ) ) )
       => ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: term] :
                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                         => ( Y0 = Y1 ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl130]) ).

thf(zip_derived_cl142,plain,
    ~ ( ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
        & ( !!
          @ ^ [Y0: term] :
              ( ( sub @ Y0 @ id )
              = Y0 ) ) )
     => ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: term] :
                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                       => ( Y0 = Y1 ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl135]) ).

thf(zip_derived_cl154,plain,
    ~ ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: term] :
              ( !!
              @ ^ [Y2: term] :
                  ( !!
                  @ ^ [Y3: term] :
                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                     => ( Y0 = Y1 ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl142]) ).

thf(zip_derived_cl166,plain,
    ~ ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: term] :
              ( !!
              @ ^ [Y2: term] :
                  ( ( ( ap @ ( sub @ '#sk164' @ id ) @ Y1 )
                    = ( ap @ ( sub @ Y0 @ id ) @ Y2 ) )
                 => ( '#sk164' = Y0 ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl154]) ).

thf(zip_derived_cl183,plain,
    ~ ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: term] :
              ( ( ( ap @ ( sub @ '#sk164' @ id ) @ Y0 )
                = ( ap @ ( sub @ '#sk214' @ id ) @ Y1 ) )
             => ( '#sk164' = '#sk214' ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl166]) ).

thf(zip_derived_cl197,plain,
    ~ ( !!
      @ ^ [Y0: term] :
          ( ( ( ap @ ( sub @ '#sk164' @ id ) @ '#sk265' )
            = ( ap @ ( sub @ '#sk214' @ id ) @ Y0 ) )
         => ( '#sk164' = '#sk214' ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl183]) ).

thf(zip_derived_cl210,plain,
    ~ ( ( ( ap @ ( sub @ '#sk164' @ id ) @ '#sk265' )
        = ( ap @ ( sub @ '#sk214' @ id ) @ '#sk319' ) )
     => ( '#sk164' = '#sk214' ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl197]) ).

thf(zip_derived_cl224,plain,
    ( ( ap @ ( sub @ '#sk164' @ id ) @ '#sk265' )
    = ( ap @ ( sub @ '#sk214' @ id ) @ '#sk319' ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl210]) ).

thf(zip_derived_cl232,plain,
    ( ( ap @ ( sub @ '#sk164' @ id ) @ '#sk265' )
    = ( ap @ ( sub @ '#sk214' @ id ) @ '#sk319' ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl224]) ).

thf(zip_derived_cl8,plain,
    ( !!
    @ ^ [Y0: term] :
        ( ( sub @ Y0 @ id )
        = Y0 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl5]) ).

thf(zip_derived_cl12,plain,
    ! [X2: term] :
      ( ( sub @ X2 @ id )
      = X2 ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl8]) ).

thf(zip_derived_cl17,plain,
    ! [X2: term] :
      ( ( sub @ X2 @ id )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl12]) ).

thf(zip_derived_cl17_001,plain,
    ! [X2: term] :
      ( ( sub @ X2 @ id )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl12]) ).

thf(zip_derived_cl256,plain,
    ( ( ap @ '#sk164' @ '#sk265' )
    = ( ap @ '#sk214' @ '#sk319' ) ),
    inference(demod,[status(thm)],[zip_derived_cl232,zip_derived_cl17,zip_derived_cl17]) ).

thf(zip_derived_cl68,plain,
    ( !!
    @ ^ [Y0: term] :
        ( !!
        @ ^ [Y1: term] :
            ( !!
            @ ^ [Y2: term] :
                ( !!
                @ ^ [Y3: term] :
                    ( ( ( ap @ Y0 @ Y2 )
                      = ( ap @ Y1 @ Y3 ) )
                   => ( Y0 = Y1 ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl65]) ).

thf(zip_derived_cl71,plain,
    ! [X2: term] :
      ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: term] :
              ( !!
              @ ^ [Y2: term] :
                  ( ( ( ap @ X2 @ Y1 )
                    = ( ap @ Y0 @ Y2 ) )
                 => ( X2 = Y0 ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl68]) ).

thf(zip_derived_cl75,plain,
    ! [X2: term,X4: term] :
      ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: term] :
              ( ( ( ap @ X2 @ Y0 )
                = ( ap @ X4 @ Y1 ) )
             => ( X2 = X4 ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl71]) ).

thf(zip_derived_cl80,plain,
    ! [X2: term,X4: term,X6: term] :
      ( !!
      @ ^ [Y0: term] :
          ( ( ( ap @ X2 @ X6 )
            = ( ap @ X4 @ Y0 ) )
         => ( X2 = X4 ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl75]) ).

thf(zip_derived_cl87,plain,
    ! [X2: term,X4: term,X6: term,X8: term] :
      ( ( ( ap @ X2 @ X6 )
        = ( ap @ X4 @ X8 ) )
     => ( X2 = X4 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl80]) ).

thf(zip_derived_cl96,plain,
    ! [X2: term,X4: term,X6: term,X8: term] :
      ( ( ( ap @ X2 @ X6 )
       != ( ap @ X4 @ X8 ) )
      | ( X2 = X4 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl87]) ).

thf(zip_derived_cl106,plain,
    ! [X2: term,X4: term,X6: term,X8: term] :
      ( ( ( ap @ X2 @ X6 )
       != ( ap @ X4 @ X8 ) )
      | ( X2 = X4 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl96]) ).

thf(zip_derived_cl426,plain,
    ! [X0: term,X1: term] :
      ( ( ( ap @ X1 @ X0 )
       != ( ap @ '#sk164' @ '#sk265' ) )
      | ( X1 = '#sk214' ) ),
    inference('sup-',[status(thm)],[zip_derived_cl256,zip_derived_cl106]) ).

thf(zip_derived_cl501,plain,
    '#sk164' = '#sk214',
    inference(eq_res,[status(thm)],[zip_derived_cl426]) ).

thf(zip_derived_cl225,plain,
    '#sk164' != '#sk214',
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl210]) ).

thf(zip_derived_cl233,plain,
    '#sk164' != '#sk214',
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl225]) ).

thf(zip_derived_cl506,plain,
    $false,
    inference('simplify_reflect-',[status(thm)],[zip_derived_cl501,zip_derived_cl233]) ).


%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.12  % Problem  : ALG256^1 : TPTP v8.1.2. Bugfixed v5.2.0.
% 0.00/0.14  % Command  : python3 /export/starexec/sandbox/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox/tmp/tmp.vnd7t160Ly true
% 0.14/0.35  % Computer : n012.cluster.edu
% 0.14/0.35  % Model    : x86_64 x86_64
% 0.14/0.35  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.14/0.35  % Memory   : 8042.1875MB
% 0.14/0.35  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.14/0.35  % CPULimit : 300
% 0.14/0.35  % WCLimit  : 300
% 0.14/0.35  % DateTime : Mon Aug 28 05:19:39 EDT 2023
% 0.14/0.35  % CPUTime  : 
% 0.14/0.35  % Running portfolio for 300 s
% 0.14/0.35  % File         : /export/starexec/sandbox/benchmark/theBenchmark.p
% 0.14/0.35  % Number of cores: 8
% 0.14/0.35  % Python version: Python 3.6.8
% 0.14/0.35  % Running in HO mode
% 0.21/0.63  % Total configuration time : 828
% 0.21/0.63  % Estimated wc time : 1656
% 0.21/0.63  % Estimated cpu time (8 cpus) : 207.0
% 0.21/0.70  % /export/starexec/sandbox/solver/bin/lams/40_c.s.sh running for 80s
% 0.21/0.72  % /export/starexec/sandbox/solver/bin/lams/35_full_unif4.sh running for 80s
% 0.21/0.74  % /export/starexec/sandbox/solver/bin/lams/40_c_ic.sh running for 80s
% 0.21/0.77  % /export/starexec/sandbox/solver/bin/lams/15_e_short1.sh running for 30s
% 0.21/0.77  % /export/starexec/sandbox/solver/bin/lams/40_b.comb.sh running for 70s
% 0.21/0.77  % /export/starexec/sandbox/solver/bin/lams/20_acsne_simpl.sh running for 40s
% 0.21/0.77  % /export/starexec/sandbox/solver/bin/lams/40_noforms.sh running for 90s
% 0.21/0.78  % /export/starexec/sandbox/solver/bin/lams/30_sp5.sh running for 60s
% 0.21/0.79  % /export/starexec/sandbox/solver/bin/lams/30_b.l.sh running for 90s
% 3.50/1.20  % Solved by lams/20_acsne_simpl.sh.
% 3.50/1.20  % done 24 iterations in 0.304s
% 3.50/1.20  % SZS status Theorem for '/export/starexec/sandbox/benchmark/theBenchmark.p'
% 3.50/1.20  % SZS output start Refutation
% See solution above
% 3.50/1.22  
% 3.50/1.22  
% 3.50/1.22  % Terminating...
% 4.22/1.39  % Runner terminated.
% 4.22/1.40  % Zipperpin 1.5 exiting
%------------------------------------------------------------------------------